package com.caregiver.watch.business.user.dao;

import com.caregiver.watch.business.user.model.po.UserAlarmClockConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface UserAlarmClockConfigDao {
    
    /**
     * 插入新的闹钟配置
     * @param userAlarmClockConfig 闹钟配置对象
     * @return 插入记录数
     */
    int insert(UserAlarmClockConfig userAlarmClockConfig);
    
    /**
     * 根据ID查询闹钟配置
     * @param id 主键ID
     * @return 闹钟配置对象
     */
    UserAlarmClockConfig selectById(Long id);
    
    /**
     * 根据用户ID查询闹钟配置列表
     * @param userId 用户ID
     * @return 闹钟配置列表
     */
    List<UserAlarmClockConfig> selectByUserId(Long userId);
    
    /**
     * 更新闹钟配置
     * @param userAlarmClockConfig 闹钟配置对象
     * @return 更新记录数
     */
    int update(UserAlarmClockConfig userAlarmClockConfig);
    
    /**
     * 更新闹钟启用状态
     * @param id 闹钟配置ID
     * @param userId 用户ID
     * @param isEnabled 是否启用(0-禁用, 1-启用)
     * @return 更新记录数
     */
    int updateEnabledStatus(@Param("id") Long id, @Param("userId") Long userId, @Param("isEnabled") Integer isEnabled);

    /**
     * 删除闹钟配置
     * @param id 闹钟配置ID
     * @return 删除记录数
     */
    int delete(@Param("id") Long id, @Param("userId") Long userId);
}
